package com.vast.admin.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.vast.system.entity.SuperEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serializable;
import java.util.Date;
import lombok.Data;

@ApiModel(value="com.vast.admin.entity.Contract")
@Data
@TableName(value = "contract")
public class Contract extends SuperEntity implements Serializable {
//     @TableId(value = "id", type = IdType.AUTO)
//    @ApiModelProperty(value="null")
//    private Long id;

    @TableField(value = "bestsign_contract_id")
    @ApiModelProperty(value="上上签合同id")
    private String bestsignContractId;

    /**
     * 合同编号
     */
    @TableField(value = "contract_no")
    @ApiModelProperty(value="合同编号")
     private String contractNo;

    /**
     * 合同名称
     */
    @TableField(value = "contract_name")
    @ApiModelProperty(value="合同名称")
    private String contractName;

    /**
     * 合同签署流程状态（0草稿 1合同制作中 2待付费3签署中 4签署完成5作废6合同制作失败）
     */
    @TableField(value = "status")
    @ApiModelProperty(value="合同签署流程状态（0草稿 1合同制作中 2待付费3签署中 4签署完成5作废6合同制作失败）")
    private String status;

    @TableField(value = "amount")
    @ApiModelProperty(value="合同金额")
    private Double amount;

    @TableField(value = "contract_amount")
    @ApiModelProperty(value="合同付费金额")
    private Double contractAmount;

    @TableField(value = "wechat_no")
    @ApiModelProperty(value="微信支付订单号")
    private String wechatNo;

    /**
     * 是否已支付（0未支付 1已支付）
     * 用于判断合同是否已支付，如客户在付费之后调用上上签接口失败等原因导致合同签署失败时重试调用合同制作之后的流程时判断该流程是否已支付
     */
    @TableField(value = "is_pay")
    @ApiModelProperty(value="是否已支付（0未支付 1已支付）（用于判断合同是否已支付，如客户在付费之后调用上上签接口失败等原因导致合同签署失败时重试 合同制作中 之后的流程时判断该流程是否已支付）")
    private Integer isPay;

    /**
     * 上上签合同签署url
     */
    @TableField(value = "contract_url")
    @ApiModelProperty(value="上上签合同签署url")
    private String contractUrl;

    /**
     * 合同所属公司
     */
    @TableField(value = "client_id")
    @ApiModelProperty(value="合同所属公司")
    private Long clientId;

    /**
     * 合同所属公司名称
     */
    @TableField(value = "client_name")
    @ApiModelProperty(value="合同所属公司名称")
    private String clientName;

    /**
     * 合同签署客户id（付费人id）
     */
    @TableField(value = "customer_id")
    @ApiModelProperty(value="合同签署客户id（付费人id）")
    private Long customerId;

    /**
     * 合同签署客户名称（合同签署付费人）
     */
    @TableField(value = "customer_name")
    @ApiModelProperty(value="合同签署客户名称（合同签署付费人）")
    private String customerName;

    /**
     * 合同资料上传状态0-未完成 1已完成
     */
    @TableField(value = "datum_status")
    @ApiModelProperty(value="合同资料上传状态")
    private Integer datumStatus;

//    /**
//     * 创建人
//     */
//    @TableField(value = "create_by")
//    @ApiModelProperty(value="创建人")
//    private Long createBy;
//
//    /**
//     * 创建时间
//     */
//    @TableField(value = "create_time")
//    @ApiModelProperty(value="创建时间")
//    private Date createTime;
//
//    /**
//     * 修改人
//     */
//    @TableField(value = "update_by")
//    @ApiModelProperty(value="修改人")
//    private Long updateBy;
//
//    /**
//     * 修改时间
//     */
//    @TableField(value = "update_time")
//    @ApiModelProperty(value="修改时间")
//    private Date updateTime;
//
//    /**
//     * 逻辑删除 0-删除, 默认-1
//     */
//    @TableField(value = "valid")
//    @ApiModelProperty(value="逻辑删除 0-删除, 默认-1")
//    private Integer valid;

    private static final long serialVersionUID = 1L;

    public static final String COL_CONTRACT_NO = "contract_no";

    public static final String COL_CONTRACT_NAME = "contract_name";

    public static final String COL_DATUM_STATUS = "datum_status";

    public static final String COL_STATUS = "status";

    public static final String COL_CONTRACT_DIR = "contract_dir";

    public static final String COL_CLIENT_ID = "client_id";

    public static final String COL_CLIENT_NAME = "client_name";

    public static final String COL_CUSTOMER_NAME = "customer_name";

    public static final String COL_CUSTOMER_ID = "customer_id";

    public static final String COL_WECHAT_NO = "wechat_no";

    public static final String COL_IS_PAY = "is_pay";


}